package 网络编程TCP通信.服务端开发;

import java.io.DataInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws Exception {
        System.out.println("---------服务端启动成功----------");
        // 目标: 完成TCP通信快速入门-服务端开发: 实现一发一收

        // 1. 创建ServerSocket的对象, 同时为服务端注册端口
        ServerSocket serverSocket = new ServerSocket(8888);

        // 2. 使用serverSocket对象, 调用一个accept方法, 等待客户端的连接请求
        Socket socket = serverSocket.accept();

        // 3. 从socket通信管道中得到一个字节输入流
        InputStream is = socket.getInputStream();

        // 4. 把低级的字节输入流包装成数据输入流
        DataInputStream dis = new DataInputStream(is);

        // 5. 使用数据输入流读取客户端发送过来的消息
        String rs = dis.readUTF();
        System.out.println(rs);

        // 其实我们也可以获取客户端的IP地址
        System.out.println(socket.getRemoteSocketAddress());

        dis.close();
        socket.close();
    }
}
